package com.abcd.thread.base;

/**
 * @program: TestMaven
 * @description: 线程说明
 * @author: Liu Xinpeng
 * @create: 2021-05-18 15:27
 **/
public class ThreadExplain {

    /**
     * 线程安全与不安全
     *
     * 线程安全就是多线程访问时，采用了加锁机制，当一个线程访问该类的某个数据的时候，进行保护，其他线程不能进行访问，直到该线程读取完
     * 其他线程才可使用，不回出现数据不一致或者数据污染
     *
     * 线程不安全就是不提供数据访问保护，有可能出现多个线程先后更改数据造成所得到的数据就是脏数据
     * */

    /**
     * 为什么会有线程安全问题
     *
     * 线程安全问题是由全局变量及静态变量引起的
     * 若每个线程中对全局变量、静态变量只有读操作，而无写操作，一般来说这个线程是全局安全的；若有多个线程同时执行写操作，一般都需
     * 考虑线程同步，否则的话就可能影响线程安全
     */


    /**
     * JAVA多线程实现方式主要有三种，继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程
     * 其中前两种方式线程执行完后都没有返回值，只有最后一种是带返回值的
     */
}